<?php
// $Id$

/**
 * Controller_Institute 控制器
 */
class Controller_Institute extends Controller_Prepare
{
    /**
     * 学院介绍专用页面
     */
    public function actionIndex()
    {
        // Error handling 初步过滤获得的值，必须满足值类型
        $Gnews_id  = isset($_GET['news_id'])  && is_numeric($_GET['news_id'])  ? $_GET['news_id']  : -10;
      $Gctgry_id = isset($_GET['ctgry_id']) && is_numeric($_GET['ctgry_id']) ? $_GET['ctgry_id'] : NULL;

        /**
         * 根据 news_id 获取信息， 学院简介 或 学院简报
         *
         * @var object $currentNews
         */
        if(isset($Gctgry_id))
        {
            $currentNews = News::find('category_id = ?', $Gctgry_id)->order(Q::ini('appini/sort'))->query();
        }
        else
        {
            $currentNews = News::find('news_id = ?', $Gnews_id)->query();
        }

        /**
         * Error handling 如果恶意输入不存在的 ctgry_id 或 news_id，导致当前新闻不存在，则显示最新一条新闻
         * Error handling 检查 news_id
         * 找不到新闻时，返回对象QColl 的 _props 属性所有字段均有值但是值为''，此时用 empty 无效，必须以属性来判断
         */
        if($currentNews->title == '')
        {
            $currentNews = News::find('news_id = ?', -10)->query();
        }

      /**
         * 更新当前新闻"阅读"值 hasread = hasread + 1
         */
        News::meta()->updateDbWhere(new QDB_Expr('hasread = hasread + 1'), 'news_id = ?', $currentNews->news_id);

        /**
         * CSS HIGHTLIGHT
         *
         * NOTICE: 学院简介 与学院简报样式不同
         */
        if($currentNews->news_id == -10)
        {
            $css = "a:link[href*='_-10.html']".HIGHLIGHT_CSS_TABS;
            $css .= "a:visited[href*='_-10.html']".HIGHLIGHT_CSS_TABS;
        }
        else
        {
            $css = "a:link[href*='_{$currentNews->news_id}.html']".HIGHLIGHT_CSS;
            $css .= "a:visited[href*='_{$currentNews->news_id}.html']".HIGHLIGHT_CSS;
        }

        $this->_view['currentNews'] = $currentNews;
        $this->_view['css']         = $css;
    }
}